package br.com.velp.sudecap.entidade;

import br.com.velp.sudecap.enumerator.SituacaoEmpreendimentoEnum;
import br.com.velp.sudecap.enumerator.TematicaEmpreendimentoEnum;
import java.util.Date;
import javax.persistence.*;
import org.apache.commons.lang.StringUtils;

/**
 * <sumario> 
 * <objetivo> "Rastreabilidade" </objetivo> 
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor> 
 * <versao>1.0.0.0</versao> 
 * <data_criacao> 16.12.2013 </data_criacao> 
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <requisitos_afetados> N/A </requisitos_afetados> 
 * <descricao> Bean Responsável Pelo Mapeamento da View EMPREENDIMENTO </descricao> 
 * </sumario>
 */
@Entity
@Table(name = "EMPREENDIMENTO")
public class Empreendimento extends EntityBase {

    public static final Long serialVersionUID = 1l;
    
    @Id
    @Column(name = "ID_EMPREENDIMENTO", nullable = false, unique = true)
    private Long id;
    
    @Column(name = "USU_CADASTRO")
    private Long idUsuarioCadastro;
    
    @Column(name = "USU_ALTERACAO")
    private Long idUsuarioAlteracao;
    
    @Column(name = "ID_REGIONAL")
    private Long idRegional;
    
    @Column(name = "ID_FASE_PLANEJAMENTO")
    private Long idFasePlanejamento;
    
    @Column(name = "ID_FASE_PROJETO")
    private Long idFaseProjeto;
    
    @Column(name = "ID_FASE_PROJETO_DESAPROPRIACAO")
    private Long idFaseProjetoDesapropriacao;
    
    @Column(name = "ID_FASE_AVALIACAO")
    private Long idFaseAvaliacao;
    
    @Column(name = "ID_FASE_JURIDICO")
    private Long idFaseJuridico;
    
    @Column(name = "ID_FASE_OBRA")
    private Long idFaseObra;

    @Column(name = "ID_FASE_FINANCEIRO")
    private Long idFaseFinanceiro;
    
    @Column(name = "ID_PROGRAMA")
    private Long idPrograma;
    
    @Column(name = "DURACAO", nullable = false, unique = true)
    private Integer duracao;
    
    @Column(name = "CODIGO")
    private Integer codigo;
    
    @Column(name = "ANO_PROGRAMA", length = 9)
    private String anoPrograma;
    
    @Column(name = "NOME", length = 150, nullable = false)
    private String nome;
    
    @Column(name = "TRECHO", length = 4000)
    private String trecho;
    
    @Column(name = "PROGRAMA", length = 100)
    private String programaOutros;
    
    @Column(name = "SITUACAO", length = 2)
    private String situacao;
    
    @Column(name = "TEMATICA", length = 1)
    private String tematica;
    
    @Column(name = "ESCOPO", length = 4000, nullable = false)
    private String escopo;
    
    @Column(name = "CODIGO_XPLAN", length = 20)
    private String codigoXplan;
    
    @Column(name = "OBS", length = 4000)
    private String observacao;
    
    @Column(name = "SOLICITANTE", length = 80)
    private String solicitante;
    
    @Column(name = "RESP_AMB", length = 80)
    private String responsavelEstudoAmbiental;
    
    @Column(name = "RESP_URB", length = 80)
    private String responsavelEstudoUrbanismo;
    
    @Column(name = "RESP_VIA", length = 80)
    private String responsavelEstudoViabilidade;
    
    @Column(name = "CONTROLE_LICITACAO_PROJETO", length = 80)
    private String controleLicitacaoProjeto;
    
    @Column(name = "CONTROLE_LICITACAO_OBRA", length = 80)
    private String controleLicitacaoObra;
    
    @Column(name = "CONTROLE_CONTRATO_PROJETO", length = 80)
    private String controleContratoProjeto;
    
    @Column(name = "CONTROLE_CONTRATO_OBRA", length = 80)
    private String controleContratoObra;
    
    @Column(name = "CONTROLE_EMPRESA_PROJETO", length = 100)
    private String controleEmpresaProjeto;
    
    @Column(name = "CONTROLE_EMPRESA_OBRA", length = 100)
    private String controleEmpresaObra;
    
    @Column(name = "SARMU", length = 15)
    private String sarmu;
    
    @Column(name = "SUB_REGIAO", length = 15)
    private String subRegiao;
    
    @Column(name = "FINALIDADE", length = 20)
    private String finalidade;
    
    @Column(name = "TIPO_SERV", length = 20)
    private String tipoServico;
    
    @Column(name = "BAIRRO", length = 50)
    private String bairro;
    
    @Column(name = "AEROFOTO", length = 50)
    private String aeroFoto;
    
    @Column(name = "COEF_APROVE", length = 20)
    private String coeficienteAproveitamento;
    
    @Column(name = "TAXA_PERM", length = 15)
    private String taxaPermeabilidade;
    
    @Column(name = "TAXA_OCUPACAO", length = 15)
    private String taxaOcupacao;
    
    @Column(name = "AFAST_LAT_FUNDO", length = 20)
    private String afastamentoLateralFundo;
    
    @Column(name = "AFAST_FRONTAL", length = 15)
    private String afastamentoFrontal;
    
    @Column(name = "CLASS_VIARIA", length = 100)
    private String classificacaoViaria;
    
    @Column(name = "LARG_VIA", length = 20)
    private String larguraVia;
    
    @Column(name = "VAGAS_ESTAC", length = 150)
    private String vagasEstacionamento;
    
    @Column(name = "USO_COL", length = 25)
    private String usoColetivo;
    
    @Column(name = "GRUPO", length = 20)
    private String grupo;
    
    @Column(name = "PERM_USO", length = 50)
    private String permissaoUsoConstrucao;
    
    @Column(name = "RESP_DVCEM", length = 50)
    private String responsavelDVCEM;
    
    @Column(name = "OP_NUM_DATA", length = 15)
    private String orcamentoParticipativo;
    
    @Column(name = "ZONEAMENTO", length = 20)
    private String zoneamento;
    
    @Column(name = "RECUO_AL", length = 20)
    private String recuoAlinhamento;
    
    @Column(name = "PROJETO_SUSTENTADOR", length = 100)
    private String projetoSustentador;
    
    @Column(name = "ALERTA_PLANEJAMENTO")
    private Boolean alertaPlanejamento;
    
    @Column(name = "INTER_VIARIA")
    private Boolean intervencaoViaria;
    
    @Column(name = "CARTA_INU")
    private Boolean cartaInundacao;
    
    @Column(name = "DECRETO_NUM")
    private Boolean decretoUtilidadePublica;
    
    @Column(name = "NAO_POSSUI_DESAP")
    private Boolean semDesapropriacao;
    
    @Column(name = "APROV_PARCEL")
    private Boolean aprovacaoParcelamento;
    
    @Column(name = "LICENC_AMBIENTAL")
    private Boolean licenciamentoAmbiental;
    
    @Column(name = "NECESSARIO_PROJ")
    private Boolean necessarioProjeto;
    
    @Column(name = "DATA_SOLICITACAO")
    @Temporal(TemporalType.DATE)
    private Date dataSolicitacao;
    
    @Column(name = "DT_INICIO_CONTROLE_PROJETO")
    @Temporal(TemporalType.DATE)
    private Date dataInicioControleProjeto;
    
    @Column(name = "DT_FIM_CONTROLE_PROJETO")
    @Temporal(TemporalType.DATE)
    private Date dataFimControleProjeto;
    
    @Column(name = "DT_INICIO_CONTROLE_OBRA")
    @Temporal(TemporalType.DATE)
    private Date dataInicioControleObra;
    
    @Column(name = "DT_FIM_CONTROLE_OBRA")
    @Temporal(TemporalType.DATE)
    private Date dataFimControleObra;
    
    @Column(name = "DATA_PREVISTA_INICIO")
    @Temporal(TemporalType.DATE)
    private Date dataPrevistaInicio;
    
    @Column(name = "DATA_PREVISTA_TERMINO")
    @Temporal(TemporalType.DATE)
    private Date dataPrevistaTermino;
    
    @Column(name = "DATA_CADASTRO", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataCadastro;
    
    @Column(name = "DATA_ALTERACAO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataAlteracao;
    
    @Column(name = "DATA_URB")
    @Temporal(TemporalType.DATE)
    private Date dataEstudoUrbanismo;
    
    @Column(name = "DATA_AMB")
    @Temporal(TemporalType.DATE)
    private Date dataEstudoAmbiental;
    
    @Column(name = "DATA_VIA")
    @Temporal(TemporalType.DATE)
    private Date dataEstudoViabilidade;
        
    public Empreendimento() {
    }

    public Empreendimento(Long id) {
	this.id = id;
    }

    public Long getId() {
	return id;
    }

    public void setId(Long id) {
	this.id = id;
    }

    public Long getIdUsuarioAlteracao() {
	return idUsuarioAlteracao;
    }

    public void setIdUsuarioAlteracao(Long idUsuarioAlteracao) {
	this.idUsuarioAlteracao = idUsuarioAlteracao;
    }

    public Long getIdUsuarioCadastro() {
	return idUsuarioCadastro;
    }

    public void setIdUsuarioCadastro(Long idUsuarioCadastro) {
	this.idUsuarioCadastro = idUsuarioCadastro;
    }

    public Long getIdRegional() {
        return idRegional;
    }

    public void setIdRegional(Long idRegional) {
        this.idRegional = idRegional;
    }

    public Long getIdFasePlanejamento() {
        return idFasePlanejamento;
    }

    public void setIdFasePlanejamento(Long idFasePlanejamento) {
        this.idFasePlanejamento = idFasePlanejamento;
    }

    public Long getIdFaseProjeto() {
        return idFaseProjeto;
    }

    public void setIdFaseProjeto(Long idFaseProjeto) {
        this.idFaseProjeto = idFaseProjeto;
    }

    public Long getIdFaseProjetoDesapropriacao() {
        return idFaseProjetoDesapropriacao;
    }

    public void setIdFaseProjetoDesapropriacao(Long idFaseProjetoDesapropriacao) {
        this.idFaseProjetoDesapropriacao = idFaseProjetoDesapropriacao;
    }

    public Long getIdFaseAvaliacao() {
        return idFaseAvaliacao;
    }

    public void setIdFaseAvaliacao(Long idFaseAvaliacao) {
        this.idFaseAvaliacao = idFaseAvaliacao;
    }

    public Long getIdFaseJuridico() {
        return idFaseJuridico;
    }

    public void setIdFaseJuridico(Long idFaseJuridico) {
        this.idFaseJuridico = idFaseJuridico;
    }

    public Long getIdFaseObra() {
        return idFaseObra;
    }

    public void setIdFaseObra(Long idFaseObra) {
        this.idFaseObra = idFaseObra;
    }

    public Long getIdFaseFinanceiro() {
        return idFaseFinanceiro;
    }

    public void setIdFaseFinanceiro(Long idFaseFinanceiro) {
        this.idFaseFinanceiro = idFaseFinanceiro;
    }

    public Long getIdPrograma() {
        return idPrograma;
    }

    public void setIdPrograma(Long idPrograma) {
        this.idPrograma = idPrograma;
    }

    public Integer getDuracao() {
	return duracao;
    }

    public void setDuracao(Integer duracao) {
	this.duracao = duracao;
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getAnoPrograma() {
        return anoPrograma;
    }

    public void setAnoPrograma(String anoPrograma) {
        this.anoPrograma = anoPrograma;
    }

    public String getNome() {
	return nome;
    }

    public void setNome(String nome) {
	this.nome = nome;
    }

    public String getSituacao() {
	return situacao;
    }

    public String getSituacaoStr() {
	return SituacaoEmpreendimentoEnum.getLabel(getSituacao());
    }

    public String getTematica() {
        return tematica;
    }
    
    public String getTematicaStr(){
        return StringUtils.isNotBlank(getTematica()) ? TematicaEmpreendimentoEnum.getLabel(getTematica()) : null;
    }

    public void setTematica(String tematica) {
        this.tematica = tematica;
    }

    public void setSituacao(String situacao) {
	this.situacao = situacao;
    }

    public String getCodigoXplan() {
	return codigoXplan;
    }

    public void setCodigoXplan(String codigoXplan) {
	this.codigoXplan = codigoXplan;
    }

    public String getEscopo() {
	return escopo;
    }

    public void setEscopo(String escopo) {
	this.escopo = escopo;
    }

    public String getObservacao() {
	return observacao;
    }

    public void setObservacao(String observacao) {
	this.observacao = observacao;
    }

    public String getResponsavelEstudoAmbiental() {
	return responsavelEstudoAmbiental;
    }

    public void setResponsavelEstudoAmbiental(String responsavelEstudoAmbiental) {
	this.responsavelEstudoAmbiental = responsavelEstudoAmbiental;
    }

    public String getResponsavelEstudoUrbanismo() {
	return responsavelEstudoUrbanismo;
    }

    public void setResponsavelEstudoUrbanismo(String responsavelEstudoUrbanismo) {
	this.responsavelEstudoUrbanismo = responsavelEstudoUrbanismo;
    }

    public String getResponsavelEstudoViabilidade() {
	return responsavelEstudoViabilidade;
    }

    public void setResponsavelEstudoViabilidade(String responsavelEstudoViabilidade) {
	this.responsavelEstudoViabilidade = responsavelEstudoViabilidade;
    }

    public String getSolicitante() {
	return solicitante;
    }

    public void setSolicitante(String solicitante) {
	this.solicitante = solicitante;
    }

    public String getTrecho() {
	return trecho;
    }

    public void setTrecho(String trecho) {
	this.trecho = trecho;
    }

    public String getControleLicitacaoProjeto() {
        return controleLicitacaoProjeto;
    }

    public void setControleLicitacaoProjeto(String controleLicitacaoProjeto) {
        this.controleLicitacaoProjeto = controleLicitacaoProjeto;
    }

    public String getControleLicitacaoObra() {
        return controleLicitacaoObra;
    }

    public void setControleLicitacaoObra(String controleLicitacaoObra) {
        this.controleLicitacaoObra = controleLicitacaoObra;
    }

    public String getControleContratoProjeto() {
        return controleContratoProjeto;
    }

    public void setControleContratoProjeto(String controleContratoProjeto) {
        this.controleContratoProjeto = controleContratoProjeto;
    }

    public String getControleContratoObra() {
        return controleContratoObra;
    }

    public void setControleContratoObra(String controleContratoObra) {
        this.controleContratoObra = controleContratoObra;
    }

    public String getControleEmpresaObra() {
        return controleEmpresaObra;
    }

    public void setControleEmpresaObra(String controleEmpresaObra) {
        this.controleEmpresaObra = controleEmpresaObra;
    }

    public String getControleEmpresaProjeto() {
        return controleEmpresaProjeto;
    }

    public void setControleEmpresaProjeto(String controleEmpresaProjeto) {
        this.controleEmpresaProjeto = controleEmpresaProjeto;
    }

    public String getAeroFoto() {
        return aeroFoto;
    }

    public void setAeroFoto(String aeroFoto) {
        this.aeroFoto = aeroFoto;
    }

    public String getAfastamentoFrontal() {
        return afastamentoFrontal;
    }

    public void setAfastamentoFrontal(String afastamentoFrontal) {
        this.afastamentoFrontal = afastamentoFrontal;
    }

    public String getAfastamentoLateralFundo() {
        return afastamentoLateralFundo;
    }

    public void setAfastamentoLateralFundo(String afastamentoLateralFundo) {
        this.afastamentoLateralFundo = afastamentoLateralFundo;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getClassificacaoViaria() {
        return classificacaoViaria;
    }

    public void setClassificacaoViaria(String classificacaoViaria) {
        this.classificacaoViaria = classificacaoViaria;
    }

    public String getCoeficienteAproveitamento() {
        return coeficienteAproveitamento;
    }

    public void setCoeficienteAproveitamento(String coeficienteAproveitamento) {
        this.coeficienteAproveitamento = coeficienteAproveitamento;
    }

    public String getFinalidade() {
        return finalidade;
    }

    public void setFinalidade(String finalidade) {
        this.finalidade = finalidade;
    }

    public String getGrupo() {
        return grupo;
    }

    public void setGrupo(String grupo) {
        this.grupo = grupo;
    }

    public String getLarguraVia() {
        return larguraVia;
    }

    public void setLarguraVia(String larguraVia) {
        this.larguraVia = larguraVia;
    }

    public String getPermissaoUsoConstrucao() {
        return permissaoUsoConstrucao;
    }

    public void setPermissaoUsoConstrucao(String permissaoUsoConstrucao) {
        this.permissaoUsoConstrucao = permissaoUsoConstrucao;
    }

    public String getResponsavelDVCEM() {
        return responsavelDVCEM;
    }

    public void setResponsavelDVCEM(String responsavelDVCEM) {
        this.responsavelDVCEM = responsavelDVCEM;
    }

    public String getSarmu() {
        return sarmu;
    }

    public void setSarmu(String sarmu) {
        this.sarmu = sarmu;
    }

    public String getSubRegiao() {
        return subRegiao;
    }

    public void setSubRegiao(String subRegiao) {
        this.subRegiao = subRegiao;
    }

    public String getTaxaOcupacao() {
        return taxaOcupacao;
    }

    public void setTaxaOcupacao(String taxaOcupacao) {
        this.taxaOcupacao = taxaOcupacao;
    }

    public String getTaxaPermeabilidade() {
        return taxaPermeabilidade;
    }

    public void setTaxaPermeabilidade(String taxaPermeabilidade) {
        this.taxaPermeabilidade = taxaPermeabilidade;
    }

    public String getTipoServico() {
        return tipoServico;
    }

    public void setTipoServico(String tipoServico) {
        this.tipoServico = tipoServico;
    }

    public String getUsoColetivo() {
        return usoColetivo;
    }

    public void setUsoColetivo(String usoColetivo) {
        this.usoColetivo = usoColetivo;
    }

    public String getVagasEstacionamento() {
        return vagasEstacionamento;
    }

    public void setVagasEstacionamento(String vagasEstacionamento) {
        this.vagasEstacionamento = vagasEstacionamento;
    }

    public String getOrcamentoParticipativo() {
        return orcamentoParticipativo;
    }

    public void setOrcamentoParticipativo(String orcamentoParticipativo) {
        this.orcamentoParticipativo = orcamentoParticipativo;
    }

    public String getZoneamento() {
        return zoneamento;
    }

    public void setZoneamento(String zoneamento) {
        this.zoneamento = zoneamento;
    }

    public String getProjetoSustentador() {
        return projetoSustentador;
    }

    public void setProjetoSustentador(String projetoSustentador) {
        this.projetoSustentador = projetoSustentador;
    }

    public String getRecuoAlinhamento() {
        return recuoAlinhamento;
    }

    public void setRecuoAlinhamento(String recuoAlinhamento) {
        this.recuoAlinhamento = recuoAlinhamento;
    }

    public String getProgramaOutros() {
        return programaOutros;
    }

    public void setProgramaOutros(String programaOutros) {
        this.programaOutros = programaOutros;
    }

    public Boolean getAlertaPlanejamento() {
        return alertaPlanejamento;
    }

    public void setAlertaPlanejamento(Boolean alertaPlanejamento) {
        this.alertaPlanejamento = alertaPlanejamento;
    }

    public Boolean getCartaInundacao() {
        return cartaInundacao;
    }

    public void setCartaInundacao(Boolean cartaInundacao) {
        this.cartaInundacao = cartaInundacao;
    }

    public Boolean getDecretoUtilidadePublica() {
        return decretoUtilidadePublica;
    }

    public void setDecretoUtilidadePublica(Boolean decretoUtilidadePublica) {
        this.decretoUtilidadePublica = decretoUtilidadePublica;
    }

    public Boolean getIntervencaoViaria() {
        return intervencaoViaria;
    }

    public void setIntervencaoViaria(Boolean intervencaoViaria) {
        this.intervencaoViaria = intervencaoViaria;
    }

    public Boolean getAprovacaoParcelamento() {
        return aprovacaoParcelamento;
    }

    public void setAprovacaoParcelamento(Boolean aprovacaoParcelamento) {
        this.aprovacaoParcelamento = aprovacaoParcelamento;
    }

    public Boolean getLicenciamentoAmbiental() {
        return licenciamentoAmbiental;
    }

    public void setLicenciamentoAmbiental(Boolean licenciamentoAmbiental) {
        this.licenciamentoAmbiental = licenciamentoAmbiental;
    }

    public Boolean getNecessarioProjeto() {
        return necessarioProjeto;
    }

    public void setNecessarioProjeto(Boolean necessarioProjeto) {
        this.necessarioProjeto = necessarioProjeto;
    }

    public Boolean getSemDesapropriacao() {
        return semDesapropriacao;
    }

    public void setSemDesapropriacao(Boolean semDesapropriacao) {
        this.semDesapropriacao = semDesapropriacao;
    }

    public Date getDataInicioControleProjeto() {
        return dataInicioControleProjeto;
    }

    public void setDataInicioControleProjeto(Date dataInicioControleProjeto) {
        this.dataInicioControleProjeto = dataInicioControleProjeto;
    }

    public Date getDataFimControleProjeto() {
        return dataFimControleProjeto;
    }

    public void setDataFimControleProjeto(Date dataFimControleProjeto) {
        this.dataFimControleProjeto = dataFimControleProjeto;
    }

    public Date getDataInicioControleObra() {
        return dataInicioControleObra;
    }

    public void setDataInicioControleObra(Date dataInicioControleObra) {
        this.dataInicioControleObra = dataInicioControleObra;
    }

    public Date getDataFimControleObra() {
        return dataFimControleObra;
    }

    public void setDataFimControleObra(Date dataFimControleObra) {
        this.dataFimControleObra = dataFimControleObra;
    }

    public Date getDataAlteracao() {
	return dataAlteracao;
    }

    public void setDataAlteracao(Date dataAlteracao) {
	this.dataAlteracao = dataAlteracao;
    }

    public Date getDataCadastro() {
	return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
    }

    public Date getDataEstudoAmbiental() {
	return dataEstudoAmbiental;
    }

    public void setDataEstudoAmbiental(Date dataEstudoAmbiental) {
	this.dataEstudoAmbiental = dataEstudoAmbiental;
    }

    public Date getDataEstudoUrbanismo() {
	return dataEstudoUrbanismo;
    }

    public void setDataEstudoUrbanismo(Date dataEstudoUrbanismo) {
	this.dataEstudoUrbanismo = dataEstudoUrbanismo;
    }

    public Date getDataEstudoViabilidade() {
	return dataEstudoViabilidade;
    }

    public void setDataEstudoViabilidade(Date dataEstudoViabilidade) {
	this.dataEstudoViabilidade = dataEstudoViabilidade;
    }

    public Date getDataPrevistaInicio() {
	return dataPrevistaInicio;
    }

    public void setDataPrevistaInicio(Date dataPrevistaInicio) {
	this.dataPrevistaInicio = dataPrevistaInicio;
    }

    public Date getDataPrevistaTermino() {
	return dataPrevistaTermino;
    }

    public void setDataPrevistaTermino(Date dataPrevistaTermino) {
	this.dataPrevistaTermino = dataPrevistaTermino;
    }

    public Date getDataSolicitacao() {
        return dataSolicitacao;
    }

    public void setDataSolicitacao(Date dataSolicitacao) {
        this.dataSolicitacao = dataSolicitacao;
    }
    
}
